#!/usr/bin/env node

const { Command } = require('commander');
const fs = require('fs-extra');
const path = require('path');
const { exportDocuments } = require('./api/export');
const { getConfig } = require('./config/config');

const program = new Command();

program
  .name('larksuite-export-tool')
  .description('飞书文档批量导出工具')
  .version('1.0.0');

program
  .command('export')
  .description('导出飞书文档')
  .option('-o, --output <path>', '输出目录', './exports')
  .option('-f, --format <format>', '导出格式 (docx, markdown, pdf)', 'docx')
  .option('-t, --token <token>', '用户访问令牌')
  .option('-a, --app-id <appId>', '应用ID')
  .option('-s, --app-secret <appSecret>', '应用密钥')
  .action(async (options) => {
    try {
      // 确保输出目录存在
      await fs.ensureDir(options.output);
      
      // 获取配置
      const config = getConfig(options);
      
      console.log('开始导出飞书文档...');
      console.log(`输出目录: ${path.resolve(options.output)}`);
      console.log(`导出格式: ${options.format}`);
      
      // 执行导出
      await exportDocuments(config, options.output, options.format);
      
      console.log('文档导出完成!');
    } catch (error) {
      console.error('导出过程中发生错误:', error.message);
      process.exit(1);
    }
  });

program.parse();